// 定义一个ES6的类
class Phone {
  constructor(brand, price) {
    this.brand = brand;
    this.price = price;
  }

  // 父类初始方法
  call() {
    console.log("我可以打电话！");
  }

  sendMessage() {
    console.log("我可以发消息");
  }
}

// 继承后不仅有父类自带的属性与方法, 还可以在父类的属性或方法之上进行拓展
class SmartPhone extends Phone {
  constructor(brand, price, color, size) {
    super(brand, price);
    this.color = color;
    this.size = size;
  }

  takePhoto() {
    console.log("我可以拍照哦");
  }

  // 重写父类发消息方法
  sendMessage() {
    console.log(`${this.brand}可以发消息`);
  }
}

const smartp = new SmartPhone("一加", 20000, "绿色", "5,5inch");
console.log(smartp);
// 父类的方法可以正常使用
smartp.call();

// 自己的方法也可以正常使用
smartp.takePhoto();
smartp.sendMessage();